package com.nuotu.datawall.clouddata.util;

import com.github.abel533.echarts.Title;
import com.github.abel533.echarts.axis.CategoryAxis;
import com.github.abel533.echarts.axis.ValueAxis;
import com.github.abel533.echarts.code.Trigger;
import com.github.abel533.echarts.code.X;
import com.github.abel533.echarts.code.Y;
import com.github.abel533.echarts.json.GsonOption;
import com.github.abel533.echarts.series.Line;
import com.nuotu.datawall.clouddata.view.YAxis;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class EchartOptionUtil {

    public static GsonOption getLineChartOptions(String titleName,Object[] xAxis, Object[] yAxis) {
        GsonOption option = new GsonOption();
        if(!Tool.isEmptyString(titleName)){
            Title titlle =new Title();
            titlle.setText(titleName);
            titlle.textStyle().fontSize(18);
            titlle.textStyle().setColor("#0efcff");
            titlle.x(X.center);
            titlle.setTextAlign(X.left);
            option.title(titlle);
        }
        option.setBackgroundColor("");
        option.tooltip().trigger(Trigger.axis);
        YAxis valueAxis = new YAxis();
        valueAxis.axisLabel().textStyle().fontSize(18);
        valueAxis.axisLine().lineStyle().color("#0efcff");
        valueAxis.splitLine().show(false);
        valueAxis.minInterval(1);
        valueAxis.name("借阅次数");
        option.yAxis(valueAxis);

        CategoryAxis categorxAxis = new CategoryAxis();
        categorxAxis.splitLine().show(false).lineStyle().color("#254E6A");
        categorxAxis.axisLine().onZero(true);
        categorxAxis.boundaryGap(false);
        categorxAxis.axisLabel().textStyle().fontSize(18);
        if(!Tool.isEmptyString(titleName)){
            categorxAxis.name("小时");
        }
        categorxAxis.data(xAxis);
        categorxAxis.axisLine().lineStyle().color("#0efcff");
        option.xAxis(categorxAxis);


        Line line = new Line();
        line.smooth(true).name("借阅量").data(yAxis).itemStyle().normal().color("#1E4360").lineStyle().color("#89BFCB").shadowColor("rgba(0,0,0,0.4)");
        line.itemStyle().normal().areaStyle().color("#234F6A").setType("default");
        List<Map> mapList=new ArrayList<>();
        Map map =new HashMap<>();
        map.put("type","max");
        map.put("name","最大值");
        mapList.add(map);
        line.markPoint().setData(mapList);
        List<Map> mapList2=new ArrayList<>();
        Map map2 =new HashMap<>();
        map2.put("type","average");
        map2.put("name","平均值");
        mapList2.add(map2);
        line.markLine().setData(mapList2);
        option.series(line);
        return option;
    }
}